package com.guan.poi.xml;

import com.guan.poi.exception.ExcelException;

/**
 * 运算符解析算法
 */
public interface ISymbol {
    /**
     * 点
     */
    char SPOT ='.';
    /**
     * 运算符
     */
    char[] EXPRESSION = {')', '+', '-', '*', '/', '%', '&', '|', '〜', '!', '>', '<', '=', '?'};
    /**
     * 中间运算符
     */
    char[] EXPRESSION_MID = {'+', '-', '*', '/', '%', '&', '|', '!', '>', '<', '=', '?'};

    default Object prase(ISymbolParser parser, String key, int index) {
        // 前面是表达式
        return prase(parser, key, index, parser.praseExpression(key.substring(index+1)));
    }

    default Object prase(ISymbolParser parser, String key, int index, Object object) {
        if(index<=0) {
            //忽略符号
            return object;
        }
        throw new ExcelException("表达式错误:["+key+"]");
    }
}
